package com.ctshk.rpc.finance.req.onaccount;

import com.ctshk.rpc.finance.json.FileJson;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import javax.validation.constraints.NotNull;
import java.io.Serializable;
import java.math.BigDecimal;
import java.time.LocalDateTime;
import java.util.List;

/**
 * 使用挂账额度req
 */
@Data
@ApiModel(value = "UseQuotaReq",description = "使用挂账额度req")
public class UseQuotaReq implements Serializable {

    @ApiModelProperty(value = "用户ID")
    private Long userId;

    @NotNull(message = "收款单号不能为空")
    @ApiModelProperty(value = "收款单号",required = true)
    private String billNumber;

    @ApiModelProperty(value = "账户ID（大客户/代理商挂账）")
    private Long accountId;

    @ApiModelProperty(value = "账户类型 1 大客户/代理商挂账,2 内部中心挂账,3 集团公司挂账")
    private Integer accountType;

    @ApiModelProperty(value = "部门ID（内部中心挂账）")
    private Long deptId;

    @NotNull(message = "币种ID不能为空")
    @ApiModelProperty(value = "币种ID",required = true)
    private Long currencyId;

    @ApiModelProperty(value = "币种名称")
    private String currencyName;

    @ApiModelProperty(value = "汇率")
    private Double exchangeRate;

    @NotNull(message = "挂账金额不能为空")
    @ApiModelProperty(value = "挂账金额",required = true)
    private BigDecimal amount;

    @ApiModelProperty(value = "业务类型")
    private Integer businessType;

    @ApiModelProperty(value = "收款方式ID")
    private Long collectionWayId;

    @ApiModelProperty(value = "收款方式")
    private String collectionWayName;

    @ApiModelProperty(value = "收款类型ID")
    private Long collectionTypeId;

    @ApiModelProperty(value = "收款类型")
    private String collectionTypeName;

    /*@ApiModelProperty(value = "收款金额")
    private BigDecimal collectionAmount;*/

    @ApiModelProperty(value = "收款时间")
    private LocalDateTime collectionTime;

    @ApiModelProperty(value = "收款凭证JSON")
    private List<FileJson> collectionVoucherJson;

    @ApiModelProperty(value = "销售单号")
    private String saleOrderNumber;

    @ApiModelProperty(value = "销售单ID")
    private Long saleOrderId;

    @ApiModelProperty(value = "产品ID")
    private Long productId;

    @ApiModelProperty(value = "产品编号")
    private String productNumber;

    @ApiModelProperty(value = "团号")
    private String tripNumber;

    @ApiModelProperty(value = "产品名称")
    private String productName;

    @ApiModelProperty(value = "资源信息")
    private List<String> resourceInfo;

    @ApiModelProperty(value = "销售人员ID")
    private Long saleUserId;

    @ApiModelProperty(value = "销售人员名称")
    private String saleUserName;

    @ApiModelProperty(value = "旅客来源1 散客 2 大客户")
    private Integer touristSource;

    @ApiModelProperty(value = "大客户ID")
    private Long bigClientId;

    @ApiModelProperty(value = "大客户名称")
    private String bigClientName;

    @ApiModelProperty(value = "旅客姓名")
    private String touristName;

    @ApiModelProperty(value = "联系电话")
    private String contactMobile;

}
